/* @author cerimice */
package Logica.Modulo.Apartados;

import Persistencia.Definicion.Apartado;
import Persistencia.Fachada.ApartadoFachada;
import Persistencia.Fachada.ListaFachada;
import Reportes.PDF.Apartado.ReporteGenerarApartado;
import Sistema.Configuracion;
import cerimice.ValidarDatos;
import com.vaadin.ui.Table;
import java.util.List;
import java.util.logging.Logger;

public class SeguimientoApartadoLogica
    {
    private String error;
    
    private ValidarDatos    valida;
    private ListaFachada    lista;
    private ApartadoFachada fachada;
    
    public SeguimientoApartadoLogica()
        {
        lista   = new ListaFachada();
        fachada = new ApartadoFachada();
        }
    
    public String getError()
        {return error;}
    
    public Table generarTabla(int campo,String valor,Table tabla) throws Exception
        {
        try
            {
            tabla.removeAllItems();
            List<Apartado> listado = lista.listaApartado(campo,valor);
            if(listado == null){return tabla;}
            for(Apartado obj:listado)
                {tabla.addItem(new Object[]{obj.getClave(),obj.getObjCliente().getNombreCompleto(),obj.getObjMarca().getNombre(),obj.getMontoTotal()},obj.getClave());}
            return tabla;
            }
        catch (Exception Ex)
            {Logger.getLogger(this.getClass().getName()).log(Configuracion.nivelLoggin(),Ex.getMessage()); throw Ex;}
        }
    
    public ReporteGenerarApartado reporteGenerarApartado(String clave) throws Exception
        {
        try
            {return new ReporteGenerarApartado(clave);}
        catch (Exception Ex)
            {Logger.getLogger(this.getClass().getName()).log(Configuracion.nivelLoggin(),Ex.getMessage()); throw Ex;}
        }
    
    public Apartado getApartado(String clave) throws Exception
        {
        try
            {return fachada.obtener(clave);}
        catch (Exception Ex)
            {Logger.getLogger(this.getClass().getName()).log(Configuracion.nivelLoggin(),Ex.getMessage()); throw Ex;}
        }
    }
